package com.gitee.feizns.quickstart.mapdb;

import org.mapdb.DB;
import org.mapdb.DBMaker;
import org.mapdb.HTreeMap;
import org.mapdb.Serializer;

import java.io.File;
import java.util.Objects;

public class MapDBExample {

//    public static void main(String[] args) {
//        System.out.println(new File());
//    }

    public static void main(String[] args) {
        // 创建或打开一个DB文件
//        File dbFile = new File("mydb");
        File file = new File(Objects.requireNonNull(MapDBExample.class.getResource("/")).getFile(), "tmp.db");

//        org.mapdb.DataIO.
        DB db = DBMaker.fileDB(file).make();

        // 创建一个HashMap并设置名称
        HTreeMap<String, String> map = db.hashMap("test", Serializer.STRING, Serializer.STRING).createOrOpen();

        // 在Map中存储数据
        map.put("key1", "value1");
        map.put("key2", "value2");

        // 提交事务以确保数据被持久化到磁盘
        db.commit();

        // 关闭数据库连接
        db.close();

//        // 重新打开数据库以检索数据
        db = DBMaker.fileDB(file).make();
//
        // 创建一个HashMap并设置名称
        map = db.hashMap("test", Serializer.STRING, Serializer.STRING).createOrOpen();
//        // 从Map中检索数据
        Object value1 = map.get("key1");
        Object value2 = map.get("key2");
//
        System.out.println("Value for key1: " + value1);
        System.out.println("Value for key2: " + value2);
//
//        // 关闭数据库连接
        db.close();
    }

}